package zookeeper;

/**
 * @author tudedong
 * @description
 * @date 2020-06-16 09:10:06
 */
public class ZkWatch {

    private DataInfo dataInfo;

    /**
     * 构造器，当ZkWatch创建对象时，此方法被执行，需要获取DataInfo对象来完成创建ZkWatch对象
     * @param dataInfo
     */
    public ZkWatch(DataInfo dataInfo) {
        //这里是伪代码，实际是从zookeeper中获取最新的节点数据
        dataInfo.setDriver("mysql driver");
        dataInfo.setUrl("127.0.0.1");
        this.dataInfo = dataInfo;
    }

    /**
     * 这里模仿zookeeper的监听，zookeeper中节点数据发生变化时，将节点数据更新
     */
    void updateDataInfo(){
            //这里是伪代码，实际是更新zookeeper里的节点数据
            dataInfo.setDriver("mysql driver");
            dataInfo.setUrl("127.0.0.1");
    }

    public DataInfo getDataInfo(){
        return dataInfo;
    }

    @Override
    public String toString() {
        return "ZkWatch{" +
                "dataInfo=" + dataInfo.getDriver() +","+dataInfo.getUrl()+
                '}';
    }
}
